/* 8. 给定一个只包含 '('  和 ')' 的字符串，找出最长有效（格式正确且连续）
括号子串的长度。
示例：
输入: "(()"
输出: 2
解释:   最长有效括号子串为 "()"
输入: ")()())"
输出: 4
解释:   最长有效括号子串为 "()()" */
let str = "(()";
let str2 = ")()())";
function isVaild(s) {
  let maxLength = 0;
  const stack = [-1];
  for (let i = 0; i < s.length; i++) {
    if (s[i] === "(") {
      stack.push(s[i]);
    } else {
      stack.pop();
      if (stack.length === 0) {
        stack.push(i);
      } else {
        maxLength = Math.max(maxLength, i - stack[stack.length - 1]);
      }
    }
  }
  return maxLength;
}
console.log(isVaild(str));
